﻿using BLL;
using DTO;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BONGDA
{
    public partial class frmDoiBong : Form
    {
        int maSan = 0;

        // # thông tin
        // 1 sữa
        int state = 0;
        public frmDoiBong()
        {
            InitializeComponent();
        }

        private void frmDoiBong_Load(object sender, EventArgs e)
        {
            state = 0;
            btnThucHien.Visible = false;
            btnXong.Visible = false;
            HienThiDS();
            DataTable dt = DoiBong_BLL.SelectAll();
            if (dt.Rows.Count == 0)
            {
                lblMa.Text = "";
                picLogo.Image = null;
                picTour.Image = null;
            }
            else
            {
                try
                {
                    // Thông tin đội bóng
                    DoiBong_DTO dto = DoiBong_BLL.SelectByID(Convert.ToInt32(dt.Rows[0]["MaDoiBong"]));
                    lblMa.Text = dto.MaDoiBong.ToString();
                    txtTen.Text = dto.TenDoiBong;
                    txtHLV.Text = dto.HLV;
                    Image FetchedImg;
                    MemoryStream stream = new MemoryStream(dto.ByteLogo);
                    FetchedImg = Image.FromStream(stream);
                    picLogo.Image = FetchedImg;

                    // Thông tin sân vận động
                    maSan = dto.MaSan;
                    SanVanDong_DTO dtoSan = SanVanDong_BLL.SelectByID(dto.MaSan);
                    txtSan.Text = dtoSan.TenSan;
                    txtNamXay.Text = dtoSan.NamXay.ToString();
                    txtSucChua.Text = dtoSan.SucChua.ToString();

                    Image FetchedImgSan;
                    MemoryStream streamSan = new MemoryStream(dtoSan.ByteTours);
                    FetchedImgSan = Image.FromStream(streamSan);
                    picTour.Image = FetchedImgSan;
                }
                catch (Exception)
                {
                }
            }
           
        }
        private void HienThiDS()
        {
            DataTable dt = DoiBong_BLL.SelectTen();
            dgvDoiBong.DataSource = dt;
        }
        private void enabledButton(bool isE)
        {
            btnSua.Enabled = isE;
            btnEx.Enabled = isE;
            btnIm.Enabled = isE;
            btnThoat.Enabled = isE;
            txtTen.ReadOnly = isE;
            txtHLV.ReadOnly = isE;
        }
        private byte[] ConvertImageToBytes(Image InputImage)
        {
            Bitmap BmpImage = new Bitmap(InputImage);
            MemoryStream Mystream = new MemoryStream();
            BmpImage.Save(Mystream, System.Drawing.Imaging.ImageFormat.Jpeg);
            byte[] ImageAsBytes = Mystream.ToArray();
            return ImageAsBytes;
        }

        private void dgvDoiBong_SelectionChanged(object sender, EventArgs e)
        {
            try
            {
                if (dgvDoiBong.SelectedRows.Count > 0 && state != 1)
                {
                    // Thông tin đội bóng
                    DoiBong_DTO dto = DoiBong_BLL.SelectByID(Convert.ToInt32(dgvDoiBong.SelectedRows[0].Cells[0].Value));
                    lblMa.Text = dto.MaDoiBong.ToString();
                    txtTen.Text = dto.TenDoiBong;
                    txtHLV.Text = dto.HLV;
                    Image FetchedImg;
                    MemoryStream stream = new MemoryStream(dto.ByteLogo);
                    FetchedImg = Image.FromStream(stream);
                    picLogo.Image = FetchedImg;

                    // Thông tin sân vận động
                    SanVanDong_DTO dtoSan = SanVanDong_BLL.SelectByID(dto.MaSan);
                    txtSan.Text = dtoSan.TenSan;
                    txtNamXay.Text = dtoSan.NamXay.ToString();
                    txtSucChua.Text = dtoSan.SucChua.ToString();

                    Image FetchedImgSan;
                    MemoryStream streamSan = new MemoryStream(dtoSan.ByteTours);
                    FetchedImgSan = Image.FromStream(streamSan);
                    picTour.Image = FetchedImgSan;
                }
            }
            catch (Exception)
            {
            }            
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            state = 1;
            grbThongTin.Text = "----------CẬP NHẬT ĐỘI BÓNG----------";
            btnThucHien.Visible = true;
            btnXong.Visible = true;
            enabledButton(false);
        }

        private void btnXong_Click(object sender, EventArgs e)
        {
            state = 0;
            grbThongTin.Text = "----------THÔNG TIN----------";
            btnThucHien.Visible = false;
            btnXong.Visible = false;
            enabledButton(true);
            HienThiDS();
            DataTable dt = DoiBong_BLL.SelectAll();
            if (dt.Rows.Count == 0)
            {
                lblMa.Text = "";
                picLogo.Image = null;
                picTour.Image = null;
            }
            else
            {
                try
                {
                    // Thông tin đội bóng
                    DoiBong_DTO dto = DoiBong_BLL.SelectByID(Convert.ToInt32(dt.Rows[0]["MaDoiBong"]));
                    lblMa.Text = dto.MaDoiBong.ToString();
                    txtTen.Text = dto.TenDoiBong;
                    txtHLV.Text = dto.HLV;
                    Image FetchedImg;
                    MemoryStream stream = new MemoryStream(dto.ByteLogo);
                    FetchedImg = Image.FromStream(stream);
                    picLogo.Image = FetchedImg;

                    // Thông tin sân vận động
                    SanVanDong_DTO dtoSan = SanVanDong_BLL.SelectByID(dto.MaSan);
                    txtSan.Text = dtoSan.TenSan;
                    txtNamXay.Text = dtoSan.NamXay.ToString();
                    txtSucChua.Text = dtoSan.SucChua.ToString();

                    Image FetchedImgSan;
                    MemoryStream streamSan = new MemoryStream(dtoSan.ByteTours);
                    FetchedImgSan = Image.FromStream(streamSan);
                    picTour.Image = FetchedImgSan;
                }
                catch (Exception)
                {
                }
            }
        }

        private void btnThucHien_Click(object sender, EventArgs e)
        {
            switch (state)
            {                
                //////////////////////////////////////////////////////////
                // Sữa //
                //////////////////////////////////////////////////////////
                case 1:
                    DoiBong_DTO dtoSua = new DoiBong_DTO();
                    if (this.txtTen.Text.ToString() == "" ||
                        this.txtHLV.Text.ToString() == "")
                    {
                        MessageBox.Show("Điền đầy đủ tất cả các trường!", "Thông báo",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Warning);
                        return;
                    }
                    if (maSan == 0 || this.txtSan.Text.ToString() == "")
                    {
                        MessageBox.Show("Chọn SÂN VẬN ĐỘNG!", "Thông báo",
                                        MessageBoxButtons.OK,
                                        MessageBoxIcon.Warning);
                        return;
                    }
                    if (picLogo.Image == null)
                    {
                        MessageBox.Show("Chọn SÂN VẬN ĐỘNG!", "Thông báo",
                                        MessageBoxButtons.OK,
                                        MessageBoxIcon.Warning);
                        return;
                    }
                    dtoSua.MaDoiBong = Convert.ToInt32(lblMa.Text);
                    dtoSua.TenDoiBong = this.txtTen.Text.ToString();
                    dtoSua.HLV = this.txtHLV.Text.ToString();
                    dtoSua.MaSan = this.maSan;
                    dtoSua.Thang = 0;
                    dtoSua.Hoa = 0;
                    dtoSua.Thua = 0;
                    dtoSua.BanThang = 0;
                    dtoSua.BanThua = 0;
                    dtoSua.Diem = 0;
                    dtoSua.ByteLogo = ConvertImageToBytes(picLogo.Image);
                    try
                    {
                        DoiBong_BLL.Update(dtoSua);
                        HienThiDS();
                        MessageBox.Show("Cập nhật đội bóng: \"" + dtoSua.TenDoiBong + "\" thành công", "Thông báo",
                                        MessageBoxButtons.OK,
                                        MessageBoxIcon.Information);
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Không thể cập nhật đội bóng!", "Lỗi",
                                        MessageBoxButtons.OK,
                                        MessageBoxIcon.Error);
                        return;
                    }
                    break;
                default:
                    break;
            }
        }

        private void txtSan_Click(object sender, EventArgs e)
        {
            if (state == 1)
            {
                frmAddTours frm = new frmAddTours();
                frm.ShowDialog();
                maSan = frm.maSan;
                this.txtSan.Text = frm.tenSan;
                this.txtNamXay.Text = frm.namXay;
                this.txtSucChua.Text = frm.sucChua;
                this.picTour.Image = frm.tours;
            }
        }

        private void btnSSan_Click(object sender, EventArgs e)
        {
            if (state == 1)
            {
                frmChooseTours frm = new frmChooseTours();
                frm.ShowDialog();
                if (frm.isChon)
                {
                    maSan = frm.maSan;
                    this.txtSan.Text = frm.tenSan;
                    this.txtNamXay.Text = frm.namXay;
                    this.txtSucChua.Text = frm.sucChua;
                    this.picTour.Image = frm.tours;
                }
            }
        }

        private void picLogo_Click(object sender, EventArgs e)
        {
            if (state == 1)
            {
                OpenFileDialog dlg = new OpenFileDialog();
                dlg.Filter = "JPG Files(*.JPG)|*.JPG|GIF Files(*.GIF)|*.GIF|PNG Files(*.PNG)|*.PNG";
                if (dlg.ShowDialog(this) == DialogResult.OK)
                {
                    picLogo.Image = Image.FromFile(dlg.FileName);
                }
            }
        }

        private void btnIm_Click(object sender, EventArgs e)
        {
            if (maSan != 0 || this.txtSan.Text.ToString() != "")
            {
                frmMatchOfClub frm = new frmMatchOfClub(Convert.ToInt32(lblMa.Text));
                frm.ShowDialog();
            }
        }

    }
}
